package com.ydlclass.serialize;

/**
 * @Author duWenJian
 * @Date 2023/11/3 10:41
 * @Version 1.0
 */
public interface Serializer {
    /**
     * 抽象的用来做序列化
     * @param object 要序列化的对象
     * @return 序列化后的字节数组
     */
    byte[] serialize(Object object);

    /**
     * 反序列化方法，将字节数组反序列化为指定类型的对象
     * @param bytes 待反序列化的字节数组
     * @param clazz 指定类型的Class对象
     * @param <T> 反序列化后的对象类型
     * @return 反序列化后生成的对象
     */
    <T> T deserialize(byte[] bytes, Class<T> clazz);

}
